//SPU模块接口
import request from "@/utils/request"
import type { SpuData, HasSpuResponseData, AllTrademark, SpuHasImg,
    SaleAttrResponseData, HasSaleAttrResponseData, SkuData, SkuInfoData } from "./type"
//SPU模块接口地址
enum API {
    //获取已有的SPU数据
    HASSPU_URL = '/admin/product/',
    //获取全部品牌的数据
    ALLTRADEMARK_URL = '/admin/product/baseTrademark/getTrademarkList',
    //获取某一个SPU下全部照片的数据
    IMAGE_URL = '/admin/product/spuImageList/',
    //获取某一个SPU下全部销售属性的数据
    SPUHASSALEATTR_URL = '/admin/product/spuSaleAttrList/',
    //获取整个项目的全部销售属性
    ALLSALEATTR_URL = '/admin/product/baseSaleAttrList',
    //添加新的SPU
    ADDSPU_URL = 'admin/product/saveSpuInfo',
    //修改已有的SPU
    UPDATESPU_URL = 'admin/product/updateSpuInfo',
    //追加一个新增的SKU地址
    ADDSKU_URL = 'admin/product/saveSkuInfo',
    //查看某一个已有SPU下的SKU
    SKUINFO_URL = 'admin/product/findBySpuId/',
    //删除已有的SPU
    REMOVESPU_URL = 'admin/product/deleteSpu/'
}

//获取某一个三级分类下已有的SPU数据的接口方法
export const reqHasSpu = (page: number, limit: number, category3Id: number | string) =>
    request.get<any, HasSpuResponseData>(API.HASSPU_URL + `${page}/${limit}?category3Id=${category3Id}`)
//获取全部的SPU品牌的数据的接口方法
export const reqAllTrademark = () => request.get<any, AllTrademark>(API.ALLTRADEMARK_URL)
//获取某一个SPU下全部照片的数据的接口方法
export const reqSpuImageList = (spuId: number) => request.get<any, SpuHasImg>(API.IMAGE_URL + spuId)
//获取某一个SPU下全部销售属性的数据的接口方法
export const reqSpuHasSaleAttr = (spuId: number) => request.get<any, SaleAttrResponseData>(API.SPUHASSALEATTR_URL + spuId)
//获取整个项目的全部销售属性的接口方法
export const reqAllSaleAttr = () => request.get<any, HasSaleAttrResponseData>(API.ALLSALEATTR_URL)
//添加一个新的SPU或修改SPU的接口方法
export const reqAddOrUpdateSpu = (data: SpuData) => {
    if (data.id) {
        return request.post<any, any>(API.UPDATESPU_URL, data)
    } else {
        return request.post<any, any>(API.ADDSPU_URL, data)
    }
}
//添加一个新的SKU的请求接口方法
export const reqAddSku = (data: SkuData) => request.post<any, any>(API.ADDSKU_URL, data)
//查看某一个已有SPU下的SKU的接口方法
export const reqSkuList = (spuId: number | string) => request.get<any, SkuInfoData>(API.SKUINFO_URL + spuId)
//删除已有的SPU的接口方法
export const reqRemoveSpu = (spuId: number | string) => request.delete<any, any>(API.REMOVESPU_URL + spuId)

